package cn.echase.ecare.yinfayun.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.time.LocalDate;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 评估信息表(AssessInfo)表实体类
 *
 * @author hanpeng
 * @date 2024-09-30 14:22:42
 */
@Data
public class AssessInfo {

    @TableId(type = IdType.AUTO)
    private Integer id;
    //柚纯字符标识
    private String ucId;
    /**
     * 评估编号
     */
    private String assessNo;
    //机构id
    private String tenantId;
    //长者id
    private String eldId;
    /**
     * 评估的长者的类型 0 在院长者 1居家 2 入住登记 3 预约长者 4 其他长者
     */
    private Integer eldType;
    //长者姓名
    private String eldName;
    private Integer age;
    //性别 0未填写 1 男 2 女
    private Integer eldSex;
    /**
     * 长者证件类型 0 居民身份证 1 港澳居民来往内地通行证 2 台湾居民来往大陆通行证 3 其他法定有效证件
     */
    private String eldIdType;
    //长者身份证号
    private String eldIdNumber;
    /**
     * 积木报表的id
     */
    private String reportId;
    //评估模板id
    private String templateId;
    //评估模板名称
    private String templateName;
    //评估模板分类id
    private String templateCategoryId;
    //评估模板分类名称
    private String templateCategoryName;
    //评估人员1ID
    private String assessorOne;
    //评估人员1姓名
    private String assessorOneName;
    //评估人员2ID
    private String assessorTwo;
    //评估人员2姓名
    private String assessorTwoName;
    //评估地点
    private String assessAddress;
    //长者能力最终等级
    private String ultimateAbilityLevel;
    //评估状态：1: 未完成 2：已完成
    private Integer assessStatus;
    //评估结果
    private String assessResult;
    //评估日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate assessDate;
    /**
     * 评估类型 1：首次评估  2：常规评估  3.即时评估  4：复评 5:其他
     */
    private Integer assessType;
    /**
     * 评估类型 中文
     */
    private String assessTypeName;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm", timezone = "GMT+8")
    private Date addTime;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 逻辑删除 0 未删除 1删除
     */
    private Integer deleted;

    /**
     * 请求参数
     */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false)
    private Map<String, Object> params = new HashMap<>();
    /**
     * 是否更新用户信息标识（1 [新输入的姓名]覆盖[历史的姓名]  2 不覆盖）
     */
    @TableField(exist = false)
    private String updateUserFlag;
}
